A Video-on-Demand (VOD) system delivers video content to a video device of a user (e.g., a cable subscriber) as a video data stream in response to the user requesting (e.g., via a user interface of the video device) the video content. An Audio-Video-on-Demand (AVOD) system is a VOD system that delivers audio content to a user's audio device as an audio data stream in response to the user requesting the audio content. The term VOD system as used herein includes both a VOD and AVOD system. Similarly, the term VOD server as used herein includes both a VOD server and an AVOD server.
Audio content and video content will be referred to collectively as “media content.” For ease of reference, each television show, movie, song, advertisement, etc. will be referred to as a “media presentation.” A “content stream” a progression of data, e.g., audio and video frames that originates from a source, such a from a VOD system, to a target, such as a television set-top box. A stream is first established, or set-up, by passing state information from the source to a user device. Such state information may include buffer locations, identifiers, logical portions source files, etc.
Also for ease of reference, each digital representation that is stored in memory and that represents a piece of a media presentation—i.e., each chunk of a television show, movie, commercial, song, game, or portion thereof—will be referred to as a “media file.” It is to be understood, however, that there are many storage formats and data compression techniques for digitizing media content into media files, and that each media presentation may be stored as a single file, or as many files. Media files can be transferred from a memory of a source to a destination by way of a content stream.
A VOD server can be made from a cluster of servers, such as independent commercial off the shelf (COTS) based servers. VOD servers receive media content by one or more streams from a content provider. VOD servers often use cache storage (cache) that is distributed among the servers of the cluster to store media content, which can then be streamed (via one or more media streams) to a user's device. A VOD server can use a load balancing system to make efficient use of the cache. To accomplish this, the load balancing system places the media content on the caches of the various servers, and steers demand for the content as needed to get the best usage of the total available cache across all the servers. As a result, a VOD server may create multiple media streams, with different parts of the media content being streamed from multiple caches (and from multiple servers).